using System;
using System.Collections.Generic;
using System.Text;

namespace MyAI.NeuralNetworkLib.Specification
{
    public interface IMultiLayerFeedForwardNeuralNetwork
    {
        void GenerateNeuralNetwork(int inputVectorDimention, List<int> structure,
            NeuralLayerTypes nlType, NeuronTypes nType,
            ActivationFunctionTypes afType, List<double> afPrms, 
            LearningMethods lMethod);

        int LayersNumber
        {
            get;
        }

        List<INeuralLayer> Layers
        {
            get;
        }

        List<double> AFParams
        {
            get;
        }

        int OutputDimention
        {
            get;
        }

        int InputDimention
        {
            get;
        }

        List<double> Transform(List<double> inputVector);

        ILearningStrategy LearningStrategy
        {
            get;
        }

        ActivationFunctionTypes AFType
        {
            get;
        }

    }
}
